/**
 * 图片上传
 */
function uploadInit() {
	// 获取相关 DOM 节点的 ID
	var btnId = editor.imgMenuId;
	var containerId = editor.toolbarElemId;
	var textElemId = editor.textElemId;
	// 创建上传对象
	var uploader = Qiniu.uploader({
		runtimes: 'html5,flash,html4', //上传模式,依次退化
		browse_button: btnId, //上传选择的点选按钮，**必需**
		uptoken_url: '/qiniu/fileUplaod.action',
		domain: 'http://pb1fi2wg4.bkt.clouddn.com/',
		//bucket 域名，下载资源时用到，**必需**
		container: containerId, //上传区域DOM ID，默认是browser_button的父元素，
		max_file_size: '100mb', //最大文件体积限制
		flash_swf_url: '../js/plupload/Moxie.swf', //引入flash,相对路径
		filters: {
			mime_types: [
				//只允许上传图片文件 （注意，extensions中，逗号后面不要加空格）
				{
					title: "图片文件",
					extensions: "jpg,gif,png,bmp"
				}
			]
		},
		max_retries: 3, //上传失败最大重试次数
		dragdrop: true, //开启可拖曳上传
		drop_element: textElemId, //拖曳上传区域元素的ID，拖曳文件或文件夹后可触发上传
		chunk_size: '4mb', //分块上传时，每片的体积
		auto_start: true, //选择文件后自动上传，若关闭需要自己绑定事件触发上传
		init: {
			'FilesAdded': function(up, files) {
				plupload.each(files, function(file) {
					// 文件添加进队列后,处理相关的事情
					printLog('on FilesAdded');
				});
			},
			'BeforeUpload': function(up, file) {
				// 每个文件上传前,处理相关的事情
				printLog('on BeforeUpload');
			},
			'UploadProgress': function(up, file) {
				// 显示进度
//				alert($(".q_img").attr("src"));
				printLog('进度 ' + file.percent)
			},
			'FileUploaded': function(up, file, info) {
				printLog(info);
				var domain = up.getOption('domain');
				var res = $.parseJSON(info);
				var sourceLink = domain + res.key; //获取上传成功后的文件的Url
				printLog(sourceLink);
				// 插入图片到editor
				editor.cmd.do('insertHtml', '<img src="' + sourceLink + '" style="max-width:50%;"/>');

			},
			'Error': function(up, err, errTip) {
				//上传出错时,处理相关的事情
				
			},
			'UploadComplete': function() {
				//队列文件处理完毕后,处理相关的事情
				layer.msg("上传完成");
				
			}
			// Key 函数如果有需要自行配置，无特殊需要请注释
			//,
			// 'Key': function(up, file) {
			//     // 若想在前端对每个文件的key进行个性化处理，可以配置该函数
			//     // 该配置必须要在 unique_names: false , save_key: false 时才生效
			//     var key = "";
			//     // do something with key here
			//     return key
			// }
		}
	});
}

/**
 * 文件上传
 * @param {Object} token
 */

function uploaderReady(token) {
	var uploader = Qiniu.uploader({
		runtimes: 'html5,flash,html4',
		browse_button: 'pickfiles', //上传按钮的ID
		container: 'btn-uploader', //上传按钮的上级元素ID
		drop_element: 'btn-uploader',
		max_file_size: '400mb', //最大文件限制
		flash_swf_url: '/resources/js/Moxie.swf',
		dragdrop: false,
		chunk_size: '4mb', //分块大小
		uptoken: token, //若未指定uptoken_url,则必须指定 uptoken ,uptoken由其他程序生成
		domain: 'http://pb1fi2wg4.bkt.clouddn.com/', //自己的七牛云存储空间域名
		multi_selection: false, //是否允许同时选择多文件
		auto_start: true,
		unique_names: true, //自动生成文件名,如果值为false则保留原文件名上传
		init: {
			'FilesAdded': function(up, files) {
				plupload.each(files, function(file) {
					// 文件添加进队列后，处理相关的事情
				});
			},
			'BeforeUpload': function(up, file) {
				// 每个文件上传前，处理相关的事情
			},
			'UploadProgress': function(up, file) {
				//文件上传时，处理相关的事情
				/*可能是文件大小
				var chunk_size = plupload.parseSize(this.getOption('chunk_size'));
				 */
				//上传进度 class="layui-btn" type="button"
				layui.use('element', function() {
					var element = layui.element;
//					$(".jdt").css("display", "block");

					//一些事件监听
					element.progress('demo', file.percent + '%');
				});

				//console.log(file.percent + "%");
			},
			'UploadComplete': function() {},
			'FileUploaded': function(up, file, info) {
				var domain = up.getOption('domain');
				var res = eval('(' + info + ')');
				var sourceLink = domain + res.key; //获取上传文件的链接地址
				$(".q_img").attr("src", sourceLink);
				$(".q_img").css("display", "block");
				$("#in_hiden").val($(".q_img").attr("src"));
			},
			'Error': function(up, err, errTip) {
//				alert(errTip);
			},
//			'Key': function(up, file) {
//				//当save_key和unique_names设为false时，该方法将被调用
//				var key = "";
//				$.ajax({
//					url: '/qiniu-token/get-key/',
//					type: 'GET',
//					async: false, //这里应设置为同步的方式
//					success: function(data) {
//						var ext = Qiniu.getFileExtension(file.name);
//						key = data + '.' + ext;
//					},
//					cache: false
//				});
//				return key;
//			}
		}
	});
	uploader.start();
}